
/*
* 抽象类
* 1.被abstract所修饰的类叫抽象类
* 2.包含抽象方法的类必须设计为抽象类,使用abstract所修饰
* 3.抽象方法不能被实例化
* 4.在抽象类中可以有普通类一样的方法,最大的特点是不能被实例化
* 5.抽象类虽然不能被实例化,但是可以继承
* 6.当普通类继承了抽象类,抽象类中有抽象方法,普通类中必须重写这个方法
* 7.如果一个抽象类继承另一个抽象,则可以不用重写当中的抽象方法
* 8.抽象类不能被static final private 所修饰
* */

abstract class Shape {
    public abstract void draw();
}
class Rect extends Shape {

    @Override
    public void draw() {
        System.out.println("○");
    }
}
class Flower extends Shape{

    @Override
    public void draw() {
        System.out.println("❀");
    }
}

public class Test {

    public static void drawMap(Shape shape) {
        shape.draw();
    }
    public static void main(String[] args) {

        drawMap(new Rect());
        drawMap(new Flower());
    }

}
